const express = require('express');
const multiparty = require('multiparty');
const router = express.Router();
const path = require('path');
const articleModel = require('../db/articleModel');
const fs = require('fs');

// 测试开发
router.get('/list',function(req,res){
    articleModel.find().then(docs=>{
        res.send(docs)
    })
})

// 文件上传
router.post('/upload',function(req,res){
    var form = new multiparty.Form();
    form.parse(req,function(err,fields,files){
        if(err){
            res.send({msg:'文件上传失败'})
        }else{
            // console.log("=======fields=======")
            // console.log(fields);// 文字信息
            // console.log("=======files=======")
            // console.log(files);// 文件信息
            var file = files.filedata[0];
            var read = fs.createReadStream(file.path);

            var write = fs.createWriteStream(path.join(__dirname,'..','public','images',file.originalFilename))
            read.pipe(write);
            write.on('close',()=>{
                res.json({err:0,msg:'/images/'+file.originalFilename})
            })
        }
    })
})



// 文章删除
router.get('/delete',function(req,res){
    let id = req.query.id;
    articleModel.deleteOne({_id:id}).then(data=>{
        // res.json({msg:'文章删除成功,马上重定向到/'})
        res.redirect('/')
    }).catch(err=>{
        // res.json({msg:'服务器错误,马上重定向到/'})
        res.redirect('/')
    })
})


// 文件修改或新增
router.post('/write',function(req,res){
    let {title,content,id}=req.body;
    let createTime = Date.now();
    if(id){
        articleModel.updateOne({_id:id},{
            title,
            content,          
            createTime
        }).then(data=>{
            // res.send({msg:'文章修改成功,马上重定向到/'})
            res.redirect('/')
        }).catch(err=>{
            res.redirect('/write')
        })
    }else{
        let username = req.session.username;
        articleModel.insertMany({
            title,
            content,
            username,
            createTime
        }).then(docs=>{
            // res.json({msg:'文章新增成功,马上重定向到/',data:docs})
            res.redirect('/')
        }).catch(err=>{
            // res.json({msg:'服务器错误,马上重定向到/write'})
            res.redirect('/write')
        })
    }
})


module.exports = router;